package br.com.sisop;

import Labirinto.Busca;
import Labirinto.Labirinto;
import Labirinto.Posicao;

public class Guloso {

	static boolean gulosa = true;
	static int repeticoes = 0;
//	static Labirinto labirinto;
	private Busca buscador;

	public Guloso(Labirinto labirinto) {

		System.out.println("\nSOLUÇÃO COM ALGORITMO GULOSO");
		System.out.println("----------------------------");

		buscador = new Busca(labirinto, false);
		Posicao[] solucao = buscador.buscar(false, false);
		
		if (solucao != null) {
			Posicao saida = labirinto.getPosicaoSaida();
			Posicao sol = solucao[0];
			
			if (saida.getX() == sol.getX() && saida.getY() == sol.getY()) {
				System.out.println("Solução em " + solucao.length + " passos.");
				
//				for (int c = solucao.length - 1; c >= 0; c--) {
//					System.out.print(" -> " + solucao[c].toString());
//				}
				
				labirinto.print(solucao);
			} else {
				System.out.println("ATENÇÃO: Problema sem solução.");
			}
		} else {
			System.out.println("ATENÇÃO: Problema sem solução.");
		}
	}

	public int getCusto() {
		return buscador.getCusto();
	}

}